package com.goldfish666.remote_control.util;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;

import java.util.ArrayList;
import java.util.List;

@Slf4j
@Component
//@AllArgsConstructor(onConstructor = @__({@Autowired}))
public class TVInputHelper {

    public List<Byte> getStandardValue(byte[] bytes) {
        List<Byte> result = new ArrayList<>();

        // 获取到原来的值：消除每位先发低位的影响。
        // 不交换0和1，因为高低电平的高低不影响是0还是1，0和1都既有高电平又有低电平，只是1的电平持续时间比0长。
        for (byte currentValue : bytes) {
            if (currentValue > 125 || currentValue < 0) {
                result.add((byte) 2);
            } else if (currentValue > 15) {
                result.add((byte) 1);
            } else {
                result.add((byte) 0);
            }
        }
        return result;
    }

    public boolean inputAccept(List<Byte> input) {
        return input.size() == 35 && input.get(0).equals((byte) 2);
    }
}
